package cn.stylefeng.guns.sys.modular.system.service;

import cn.stylefeng.guns.base.pojo.page.LayuiPageInfo;
import cn.stylefeng.guns.sys.modular.system.entity.BtyReemploy;
import cn.stylefeng.guns.sys.modular.system.model.params.BtyReemployParam;
import cn.stylefeng.guns.sys.modular.system.model.result.ArchivesResult;
import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 *  再次入职人员服务类
 * </p>
 *
 * @author tz
 * @since 2022-05-05
 */
public interface BtyReemployService extends IService<BtyReemploy> {


    /**
     * 批量删除
     *
     * @Param reemployIds 再次入职员工集合
     */
    void batchDelete(List<String> reemployIds);

    /**
     * 查询分页数据，Specification模式
     *
     * @Param param 查询条件
     */
     LayuiPageInfo findPageBySpec(BtyReemployParam param);

    /**
     * 获取实体列表
     *
     * @Param param 查询条件
     */
    List<BtyReemploy> reemployList(@Param("param") BtyReemployParam param);

    /**
     * 批量保存
     *
     * @param list 再次入职员工集合
     * @return 保存的记录数
     */
    Integer addList(List<BtyReemploy> list);

    /**
     * 获取入职员工实体列表
     *
     * @Param dayNum 天数
     */
    List<BtyReemploy> getEntryEmpList(int dayNum);

    /**
     * 判断东更道中再次入职员工是否已经存在
     *
     * @Param dgdLeaveEmpList 东更道入职员工
     */
    List<BtyReemploy> existReemployEmpList(List<ArchivesResult> dgdLeaveEmpList);

    /**
     * 查询公众号推送消息的接收者
     * @return 接收者集合
     */
    List<String> getOpenidList();

    /**
     * 批量修改发送状态
     * @param reemployIds id集合
     */
    int updateSendStatusByIds(@Param("reemployIds") List<String> reemployIds);
}
